Assembly and palletizing of Space Frame using Fanuc M10ID/12 Robot

The project seeks to address the need for automation in manufacturing through the process automation of assembly and palletization of a versatile and modular “space frame” using a popular robot whose simulation is easily comprehensible and doable, with the same being readily transferred to the real robot assembly environment able to accommodate changes in frequency and variability of the process.

Space Frame

A space frame is a modular and robust structure which can be used as a unit of assemblage for fences, panels, cages, tiles, etc. It can also be used as support structures during construction work. They have potentially higher resistance towards varying temperature & wear and can have the capacity to withstand high loads, given the right design, fabrication and securing mechanism. It can also have a high degree of reusability, as well as easy maintenance and repair

Fanuc M-10iD/12 Robot

The FANUC M-10iD/12 robot is used for the purposes of this project. It is a versatile 6-axis robot with high axis speeds and precision. It has a payload capacity of 12kg while the robot, itself, weighs just 145kg. It also boasts a reach of 1441mm. It has a repeatability of 0.02mm and an articulated structure. It has floor, upside-down and angle mount capabilities.


The M-10iD/12 robot in the lab comes fitted with the following grippers as standard.Electromagnetic Gripper,Vacuum Gripper,2-Jaw Gripper,3-Jaw Gripper.But inorder to Automate the above process we have used only the Magnetic and Vacuum gripper

Objective

  • Design and fabrication of space frame
  • Design and fabrication of suitable fixtures for work environment
  • Simulation of process using an easy-to-use and accessible simulation software
  • Transposition to real-world process environment
  • Methodology

    Design of Space Frame

    The design of the space frame had to be done considering the constraints we were dealt with. The available work volumes in the laboratory, the grippers available for use, the payload of the robot, material costs, ease of fabrication, and suitability for industrial application were the chief criteria that determined the design of the space frame.

    Design of Fixtures

    The default fixtures and layout of the laboratory work environment necessitated the inclusion of separate fixtures on which to carry out the assembly and palletization processes. The weights of the individual parts and assembled frames, dimensions of the parts and the frames, magnetic properties, dimensions of work environment, distance from robot and material costs were the design considerations.

    Fabrication

    The designs were submitted to an independent third-party contractor. The fabrication was done as a joint effort by the aforementioned professionals and the members of the project team under their supervision.

    Simulation

    The simulation had to be done using user-friendly and accessible software. The software chosen for this was FANUC’s own ROBOGUIDE 9.10. Not only was it realistic and customizable to a high degree, the program written on the computer was directly transferable to the real robot, which needed only fine-tuning afterward.

    Detailed Dive into simulating the movenment of the Robot Virtually

    Any articulated arm robot has a work volume and any operations involving the robot has to be carried out inside this volume. The work volume of a robot lies between the maximum and minimum reach of the robot. In a perfect world the complete work volume of the robot is available to assemble the space frame but we had additional constraints; some of the noteworthy ones are as follows:

    The maximum reach of the M10iD/12 robot was specified to be 1.441180 meters but the protective cages were bolted well before this limit ,due to which the work volume was reduced

    The robot M10iD/12 could carry out certain standard pick and place operations for demonstrative purposes using its various grippers, for which certain standard tables were fabricated and bolted in front of the robot. This further limited the available space in the work volume of the robot.

    The space behind the robot was ominously occupied by the wires connecting the control system and the pneumatic compressors which are used to operate the two jaw and three jaw grippers. Therefore the operations of the space frame were possible only in front of the robot.

    Due to all these constraints a Work Environment Layout was Designed

    Work Environment Layout Design

    The measurements which were taken to build the work environment is as follows:

  • Distance between Front cage to grippers= 111 cm
  • Distance between Side cage to grippers= 99 cm
  • Distance between Ground to grippers= 98 cm
  • Standard Table height= 110 cm
  • Standard Table length= 55 cm
  • Standard Table width= 26 cm
  • Reach= 144.1180 cm radial
  • Work length towards the left of the robot= 136 cm
  • Distance between Front cage to Standard table= 34 cm
  • Distance between the two side cages from left to right= 216 cm
  • Distance between standard tables to the cage to the left of the robot= 46 cm
  • Work length towards the right of the robot= 72 cm
  • The Draft of the Work Environment is shown in the figure

    Simulation Softwear

    FANUC ROBOGUIDE is a robot simulation software that simulates both the robot’s motion and application commands. FANUC ROBOGUIDE version 9.1 is used to simulate the robot for this project. It allows for easy design and creation of the workspace layout and the placement of required elements within it to achieve the desired application. The robot can be programmed offline and the program can be transposed to physical applications. The simulations carried out in ROBOGUIDE maintain accuracy in relation to the real-world application. On a larger, industrial scale, this reduces downtime and reduces losses in production. Path planning of robot motion is intuitive and accompanied by simple animations. The CAD data of designed components, parts and fixtures can be directly imported to ensure accuracy and realism. Alternatively, ROBOGUIDE itself contains an extensive library of highly efficient, application specific tools to simplify programming efforts

    Since this project involves a material handling application, HandlingPRO work cell is used. HandlingPRO is used for applications including loading, packaging, assembly, and material removal. Features of this work cell include CAD to path programming, conveyor line tracking and machine modelling.

    Work environment Layout Design on Fanuc ROBOGUIDE

    For any robot simulation to be meaningful and transposable to real world applications, the arrangement of various components in the three-dimensional environment of the robot must be at ideal locations within the robot’s reach. This type of arrangement enhances accuracy and optimizes the performance of the robot. FANUC ROBOGUIDE is used to design the layout and environment of the robot. This design is done in accordance to the physical measurements and dimensions taken directly from the college lab in which the FANUC M-10iD/12 is housed.

    Many of the components that constitute the layout such as, Parts table, Assembly table, stacking table are designed using CATIA version 19 and the respective CAD files are generated. These CAD files are then directly imported into ROBOGUIDE and integrated into the layout. The remaining components required for the simulation are sourced from ROBOGUIDE’s extensive library of application specific parts and fixtures. These components are then arranged in three-dimensional space at ideal locations within the reach of the robot to optimize its performance.

    The above figure shows the completed layout designed in ROBOGUIDE. It is done in accordance to the initial CAD design . However, the dimensions of the guard cage are increased in order to sufficiently accommodate the work volume of the robot. This is only a recommended correction, and the simulation is not dependent on it; in other words, it will work in exactly the same way in the artificially constrained environment of the college laboratory. Once the design of the layout is complete, the robot is programmed to execute the required assembly

    Programming the Robots Motion

    The programming of the M-10iD/12 robot is done on the Teach Pendant using the multitude of functions offered by the controller. Certain simulation programs are also defined directly in the simulator to supplement the functioning of the robot. These are mainly the pick and place programs that inform the robot about the locations and grippers with which each part is to be picked and placed.

    Payload Configuration

    The robot payload can be defined as the total weight a robot arm can lift. This includes the weight of the end of arm tooling. The setting of the payload is done using the Teach Pendant. Since the mass of the frame coupled to the gripper and its fixture is much less than 12 kg (which is the payload of the robot) the robot is well within its operational limits.

    Position Registers

    Position registers are memory allocations that store positional values and coordinates. They are used to record and store coordinates of points within the work cell to which the robot must move in order to perform the desired operation. The locus of these points forms the motion path of the robot

    Simulation Programs

    Simulation programs are programs that are defined directly in the simulator. These programs allow the addition of instructions such as ‘Pickup’ and ‘Drop’. They are mainly utilized in the stage of the simulation where the gripper is required to actuate to pick up or place a part

    The payload configuration ,Position Registers and Simulation Programs are used to in the program which simulates the robots motion on ROBOGUIDE

    program
    Key Functions in the Program
    • UFRAME_NUM: This function is used to set user frame number. Since no tool frames are being used, it is set to zero.
    • UTOOL_NUM: This function is used to set user tool number. Since only one tool is used, it is set to one.
    • PAYLOAD: It allows for the selection of payload. Here, a single payload of 12kg is defined.
    • OVERRIDE: This allows the user to increase or decrease the speed of robot motion without altering the program.
    • CALL: It allows for programs stored in the memory to be called.
    • J PR[] 200mm/sec CNT 25: This function denotes joint movement of the robot to the position specified in the position register 'PR[]'. '200mm/s' denotes the speed with which the robot arm is to move. 'CNT' represents continuous motion.
    • L PR[] 200mm/sec CNT 25: This is similar to the previous function. However, 'L' denotes linear movement. Thus, a linear path is created to the position specified in the position register 'PR[]'.
    • WAIT: This is a function that specifies the time (in sec) the robot must remain in the current position before the next command is executed.

    There are only two control programs defined and that is Homing and main.The below image shows the complete program

    Homing 1. ! A program to return the robot to home position. 2. J PR [ 1 : Home ] 100 % FINE Main 3. ! The main program that defines the robot motion. 4. ! Basic pre processors 5. UFRAME_NUM = 0 6. UTOOL_NUM = 1 7. PAYLOAD [ 1 : Test ] 8. OVERRIDE = 30 % 9. CALL HOMING 10. ! Pickup of Space Frame 2 (bottom) 11. J PR [ 4 : Frame2p ] 100 % CNT25 12. Tool_Offset , PR [ 8 : zofst150 ] 13. L PR [ 4 : Frame2p ] 2000mm/sec CNT25 14. WAIT .50 (sec) 15. CALL PICKUP2 16. WAIT .50 (sec) 17. L PR [ 4 : Frame2p ] 2000mm/sec FINE 18. Tool_Offset , PR [ 8 : zofst150 ] 19. ! Placing of Space Frame 2 (bottom) 20. J PR [ 5 : Frame2d ] 100 % CNT25 21. Tool_Offset , PR [ 8 : zofst150 ] 22. L PR [ 5 : Frame2d ] 2000mm/sec CNT25 23. WAIT .50 (sec) 24. CALL PLACE2 25. WAIT .50 (sec) 26. L PR [ 5 : Frame2d ] 2000mm/sec FINE 27. Tool_Offset , PR [ 8 : zofst150 ] 28. CALL HOMING 29. ! Pickup of Acrylic Sheet 30. J PR [ 6 : Acrp ] 100 % CNT25 31. Tool_Offset , PR [ 8 : zofst150 ] 32. L PR [ 6 : Acrp ] 2000mm/sec CNT25 33. WAIT .50 (sec) 34. CALL PICKUPACR 35. WAIT .50 (sec) 36. L PR [ 6 : Acrp ] 2000mm/sec FINE 37. Tool_Offset , PR [ 8 : zofst150 ] 38. ! Placing of Acrylic Sheet 39. J PR [ 7 : Acrd ] 100 % CNT25 40. Tool_Offset , PR [ 8 : zofst150 ] 41. L PR [ 7 : Acrd ] 2000mm/sec CNT25 42. WAIT .50 (sec) 43. CALL PLACEACR 44. WAIT .50 (sec) 45. L PR [ 7 : Acrd ] 2000mm/sec FINE 46. Tool_Offset , PR [ 8 : zofst150 ] 47. CALL HOMING 48. ! Pickup of Space Frame 1 (top) 49. J PR [ 2 : Frame1p ] 100 % CNT25 50. Tool_Offset , PR [ 8 : zofst150 ] 51. L PR [ 2 : Frame1p ] 2000mm/sec CNT25 52. WAIT .50 (sec) 53. CALL PICKUP1 54. WAIT .50 (sec) 55. L PR [ 2 : Frame1p ] 2000mm/sec FINE 56. Tool_Offset , PR [ 8 : zofst150 ] 57. ! Placing of Space Frame 1 (top) 58. J PR [ 3 : Frame1d ] 100 % CNT25 59. Tool_Offset , PR [ 8 : zofst150 ] 60. L PR [ 3 : Frame1d ] 2000mm/sec CNT25 61. WAIT .50 (sec) 62. CALL PLACE1 63. WAIT .50 (sec) 64. L PR [ 3 : Frame1d ] 2000mm/sec FINE 65. Tool_Offset , PR [ 8 : zofst150 ] 66. CALL HOMING 67. ! Stacking of first assembled frame 68. J PR [ 3 : Frame1d ] 100 % CNT25 69. Tool_Offset , PR [ 8 : zofst150 ] 70. L PR [ 3 : Frame1d ] 2000mm/sec CNT25 71. WAIT .50 (sec) 72. CALL PICKUP11 73. CALL PICKUP12 74. CALL PICKUP13 75. WAIT .50 (sec) 76. L PR [ 3 : Frame1d ] 2000mm/sec FINE 77. Tool_Offset , PR [ 8 : zofst150 ] 78. J PR [ 9 : Stack ] 100 % CNT25 79. Tool_Offset , PR [ 8 : zofst150] 80. L PR [ 9 : Stack ] 2000mm/sec CNT25 81. WAIT .50 (sec) 82. CALL PLACE11 83. CALL PLACE12 84. CALL PLACE13 85. WAIT .50 (sec) 86. L PR [ 9 : Stack ] 2000mm/sec FINE 87. Tool_Offset , PR [ 8 : zofst150 ] 88. CALL HOMING 89. ! Pickup of Space Frame 2 (bottom) set 2 90. J PR [ 13 : Frame_2p ] 100 % CNT25 91. Tool_Offset , PR [ 8 : zofst150 ] 92. L PR [ 13 : Frame_2p ] 2000mm/sec CNT25 93. WAIT .50 (sec) 94. CALL PICKUP_2 95. WAIT .50 (sec) 96. L PR [ 13 : Frame2_p ] 2000mm/sec FINE 97. Tool_Offset , PR [ 8 : zofst150 ] 98. ! Placing of Space Frame 2 (bottom) set 2 99. J PR [ 14 : Frame_2d ] 100 % CNT25 100. Tool_Offset , PR [ 8 : zofst150 ] 101. L PR [ 14 : Frame_2d ] 2000mm/sec CNT25 102. WAIT .50 (sec) 103. CALL PLACE_2 104. WAIT .50 (sec) 105. L PR [ 14 : Frame_2d ] 2000mm/sec FINE 106. Tool_Offset , PR [ 8 : zofst150 ] 107. CALL HOMING 108. ! Pickup of Acrylic Sheet set 2 109. J PR [ 15 : Acr_p ] 100 % CNT25 110. Tool_Offset , PR [ 8 : zofst150 ] 111. L PR [ 15 : Acr_p ] 2000mm/sec CNT25 112. WAIT .50 (sec) 113. CALL PICKUP_ACR 114. WAIT .50 (sec) 115. L PR [ 15 : Acr_p ] 2000mm/sec FINE 116. Tool_Offset , PR [ 8 : zofst150 ] 117. ! Placing of Acrylic Sheet set 2 118. J PR [ 16 : Acr_d ] 100 % CNT25 119. Tool_Offset , PR [ 8 : zofst150 ] 120. L PR [ 16 : Acr_d ] 2000mm/sec CNT25 121. WAIT .50 (sec) 122. CALL PLACE_ACR 123. WAIT .50 (sec) 124. L PR [ 16 : Acr_d ] 2000mm/sec FINE 125. Tool_Offset , PR [ 8 : zofst150 ] 126. CALL HOMING 127. ! Pickup of Space Frame 1 (top) set 2 128. J PR [ 11 : Frame_1p ] 100 % CNT25 129. Tool_Offset , PR [ 8 : zofst150 ] 130. L PR [ 11 : Frame_1p ] 2000mm/sec CNT25 131. WAIT .50 (sec) 132. CALL PICKUP_1 133. WAIT .50 (sec) 134. L PR [ 11 : Frame_1p ] 2000mm/sec FINE 135. Tool_Offset , PR [ 8 : zofst150 ] 136. ! Placing of Space Frame 1 (top) set 2 137. J PR [ 12 : Frame_1d ] 100 % CNT25 138. Tool_Offset , PR [ 8 : zofst150 ] 139. L PR [ 12 : Frame_1d ] 2000mm/sec CNT25 140. WAIT .50 (sec) 141. CALL PLACE_1 142. WAIT .50 (sec) 143. L PR [ 12 : Frame_1d ] 2000mm/sec FINE 144. Tool_Offset , PR [ 8 : zofst150 ] 145. CALL HOMING 146. ! Stacking of second assembled frame 147. J PR [ 12 : Frame_1d ] 100 % CNT25 148. Tool_Offset , PR [ 8 : zofst150 ] 149. L PR [ 12 : Frame_1d ] 2000mm/sec CNT25 150. WAIT .50 (sec) 151. CALL PICKUP_11 152. CALL PICKUP_12 153. CALL PICKUP_13 154. WAIT .50 (sec) 155. L PR [ 12 : Frame_1d ] 2000mm/sec FINE 156. Tool_Offset , PR [ 8 : zofst150 ] 157. J PR [ 17 : Stack_2 ] 100 % CNT25 158. Tool_Offset , PR [ 8 : zofst150 ] 159. L PR [ 17 : Stack_2 ] 2000mm/sec CNT25 160. WAIT .50 (sec) 161. CALL PLACE_11 162. CALL PLACE_12 163. CALL PLACE_13 164. WAIT .50 (sec) 165. L PR [ 17 : Stack_2 ] 2000mm/sec FINE 166. Tool_Offset , PR [ 8 : zofst150 ] 167. CALL HOMING


    One controller program can also be called inside another. In this case, 'Homing' is called multiple times inside 'Main'. Various simulation programs are also called inside 'Main'. Once the above programs have been entered into the Teach Pendant, the program 'Main' is run to complete the required simulation.

    Simulation of the Pick and Place application

    The below video shows the simulation of the pick and place application using the Fanuc M10iD/12 Robot




    Result

    It can be inferred from the success of the process that the objectives the project started out with were satisfied. Each of the criteria considered was met. The primary mission of automating the process was clearly fruitful. The additional adaptability and variability objectives were just as successfully met. The process can be adapted for more than two frames by, among other means, having a conveyor belt feeding the parts to the robot instead of static tables in an industrial environment. Other operations like adding permanent joints (welds, rivets, adhesives, etc) or mechanical locks can be achieved by using suitable grippers, which are both available in the market for purchase as well as on the software for simulation. On the basis of this, it was concluded that the project could be proclaimed a success

    Conclusion and Future Scope of Work

    The project serves as an initial attempt to understand robot manipulation and its application in industry. While the objectives of the project were achieved, it raises questions about the future, specifically the development of autonomous systems powered by artificial intelligence. However, considerations such as the smooth transition, worker displacement, retraining, safety, and sustainable development must be addressed. Overall, the project is seen as a foundational step towards further exploration and future endeavors in automation.

    References

    1. J Frohm, Lindstrom, M Winroth, J Stahre, "The Industry’s View on Automation in Manufacturing", IFAC Proceedings Volume 39, Issue 4, 2006.
    2. Robert Krug, Todor Stoyanov, Vinicio Tincani, Henrik Andreasson, Rafael Mosberger, Gualtiero Fantoni, Achim J Lilienthal, "The Next Step in Robot Commissioning: Autonomous Picking and Palletizing", IEEE Robotics and Automation Letters Volume 1, 2006.
    3. Boubekri, N. and Chakraborty, P. (2002), "Robotic grasping: gripper designs, control methods and grasp configurations – a review of research", Integrated Manufacturing Systems, Vol. 13 No. 7, pp. 520-531.
    4. Lihui Wang, Shadi Keshavarzmanesh, Hsi-Yung Feng, Ralph O Buchal, "Assembly Process Planning and its Future in Collaborative Manufacturing: A Review", The International Journal of Advanced Manufacturing Technology 41, 132 (2009).
    5. Bram Westerweel, Rob J.I. Basten, Geert-Jan van Houtum, "Traditional or Additive Manufacturing? Assessing Component Design Options through Lifecycle Cost Analysis", European Journal of Operational Research, Volume 270, Issue 2, 2018, Pages 570-585.